package com.itheima.dao;

import com.itheima.pojo.Menu;
import com.itheima.pojo.Permission;
import com.itheima.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface RoleDao {
    List<Role> findByCondition(String queryString);

    List<Permission> findPermission();

    List<Menu> findMenu();

    Integer addRole(Role role);

    void addPermissionIds(@Param("roleId") Integer roleId,@Param("permissionId") Integer permissionId);

    void addMenuIds(@Param("roleId")Integer roleId,@Param("menuId") Integer menuId);

    Role findRoleByIdBackRole(Integer roleId);

    List<Integer> findRolePermissionByRoleId(Integer roleId);

    List<Integer> findRoleMenuByRoleId(Integer roleId);

    void updateByRole(Role role);

    void updateBypermissionIdsDelete(Integer roleId);
    //Integer roleId, Integer[] permissionIds
    void updateBypermissionIds(@Param("roleId")Integer roleId,@Param("permissionId") Integer permissionId);


    void updateBymenuIdsDelete(Integer roleId);

    void updateBymenuIds(@Param("roleId")Integer roleId,@Param("menuId")Integer menuId);

    void deleteRolePermission(Integer id);

    void deleteRoleMenu(Integer id);

    void deleteById(Integer id);


    List<String> findkeywords();
}
